from openpyxl import load_workbook
from mysql import connector

# 建立数据库连接
conn = connector.connect(
    host='127.0.0.1',  # 连接底座
    user='root',  # 数据库用户名
    password='root',  # 用户名对应的密码
    database='',  # 库名称
)
# 创建一个游标对象
cursor = conn.cursor()


# 插入数据
def insert_data(sql):
    cursor.execute(sql)
    conn.commit()  # 处理库里的数据，需要执行此剧
    print("插入最后一条记录, ID:", cursor.lastrowid)


# 文件路径
file_path = "t.xlsx"
work = load_workbook(file_path)
# 激活
sheet = work.active
# 总共多少列
colums_num = sheet.max_column
# 总共多少行
rows_num = sheet.max_row

# 自定义头部，方便数据入库
header_dict = {'标题-11': 'name', '标题-22': 'phone', '标题-33': 'address',
               '标题-111': 'name', '标题-222': 'phone', '标题-333': 'address',
               '标题-1111': 'name', '标题-2222': 'phone', '标题-3333': 'address',
               '标题-11111': 'name', '标题-22222': 'phone', '标题-33333': 'address',
               '标题-111111': 'name', '标题-222222': 'phone', '标题-333333': 'address'}
header_dict_keys_list = list(header_dict.keys())  # key值转换成列表

# # 获取头部的字段信息
# header_list = []
header_column_ind = 1
# while header_column_ind < colums_num:
#     # print(sheet.cell(1, header_column_ind).value)
#     header_list.append(sheet.cell(1, header_column_ind).value)
#     header_column_ind += 1
# # 打印头部数据
# print(header_list)

# 获取内容
content_row_ind = 0
content_data_dict = {}
while content_row_ind < rows_num:
    header_column_ind = 0
    # content_data_dict[content_row_ind] = {}#字典方式存储，相同键值会覆盖
    content_data_dict[content_row_ind] = []  # 列表形式存储，以索引方式来取值
    # 循环列
    while header_column_ind < colums_num:
        row_one_val = sheet.cell(1, header_column_ind + 1).value
        cell_val = sheet.cell(content_row_ind + 1, header_column_ind + 1).value
        # content_data_dict[content_row_ind][header_dict[row_one_val]] = cell_val
        content_data_dict[content_row_ind].append(cell_val)
        header_column_ind += 1
    # 行索引自增
    content_row_ind += 1
# 打印获取的内容数据
# print(content_data_dict)

# 组合sql数据
# sql=""
for key, values in content_data_dict.items():
    if key < 1: continue  # 跳过头数据，获取在获取的时候过滤掉都可以
    # print(key, values)
    for item in values:
        # print(item == None)
        print(item)

# 调用插入表方法
# insert_data(sql)
